package com.nacrtstudio.webgiftshop.core.dao.service;

import java.util.List;

import org.hibernate.Session;

import com.nacrtstudio.webgiftshop.core.command.Command;
import com.nacrtstudio.webgiftshop.core.dao.HibernateDao;
import com.nacrtstudio.webgiftshop.model.shop.Gift;


public interface ReadCommand<Type> extends Command<List<Type>>  {
	public ReadCommand<Type> setType(Class<Type> clazz);
	
	public HibernateDao<Session> getHibernateDao();

	public Class<Type> getType();
	
	public List<Type> execute(Class<Type> type, Type object);
	
	public Type execute(Class<Type> searchForType, String property, String value);
	
	public Type execute(Class<Type> searchForType, String property, Long value);

	public List<Type> execute(Class<Type> class1, String property);
	
	public List<Type> getAllAscSortByProperty(Class<Type> class1, String property);
}
